/* -*- mode:c++ -*- */
#ifndef _BP_PLUGIN_H
#define _BP_PLUGIN_H
#include <iostream>
#include <vector>
#include <sstream>

class BlackPinePlugin
{
public:
  BlackPinePlugin() {};
  virtual ~BlackPinePlugin() {};  
  virtual void process(std::ostringstream& strm, const std::vector<std::string>& args) = 0;
};

BlackPinePlugin* new_plugin(const char* name, const char* path = "");
void delete_plugin(BlackPinePlugin* p);

extern "C"
{
  BlackPinePlugin* create_plugin();
}

#endif /* _BP_PLUGIN_H */
